package com.caiju.health.controller;


import com.caiju.health.constant.MessageConstant;
import com.caiju.health.entity.PageResult;
import com.caiju.health.entity.Result;
import com.caiju.health.pojo.CheckGroup;
import com.caiju.health.pojo.CheckItem;
import com.caiju.health.service.ICheackGroupService;
import com.caiju.health.vo.QueryPageBean;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

@RestController
@RequestMapping("/checkGroup")
@CrossOrigin    //允许跨域，因为不同端口号，认为不是同一个人
public class CheckGroupController {
    @Resource
    private ICheackGroupService cheackGroupService;

    @GetMapping("/findCheckGroupByCondition")
    public PageResult findCheckGroupByCondition(QueryPageBean queryPageBean){
        //从queryPageBean获取查询的条件
        //currentPage  页码
        Integer currentPage = queryPageBean.getCurrentPage();
        //pageSize 每页显示的条数
        Integer pageSize = queryPageBean.getPageSize();
        //queryString 表示查询的条件
        //根据项目的原型我们发现将来进行搜索的时候是根据项目的编码以及项目名称进行搜索
        String queryString = queryPageBean.getQueryString();
        PageResult pageResult = cheackGroupService.findCheckGroupByCondition(currentPage,pageSize,queryString);
        return pageResult;
    }

//        数据回显
    @GetMapping ("/findCheckGroupById/{id}")
    public Result findCheckGroupById(@PathVariable("id")Integer id){
        System.out.println("========="+id);
       CheckGroup checkGroup = cheackGroupService.findCheckGroupById(id);
        //表示需要返回一个Result对象，给前端做响应
        return  new Result(true, MessageConstant.QUERY_CHECKGROUP_SUCCESS,checkGroup);
    }

    //    查询所有
    @GetMapping ("/findAllCheckGroup")
    public Result findAllCheckGroup(){
        List<CheckGroup> checkGroupList = cheackGroupService.findAllCheckGroup();
        //表示需要返回一个Result对象，给前端做响应
        return  new Result(true, MessageConstant.QUERY_CHECKGROUP_SUCCESS,checkGroupList);
    }



//    新增检查组数据 ，， 会包含有检查组以及检查项数据
    @PostMapping("/addCheckGroup/{checkItemIds}")
    public Result addCheckGroup(@RequestBody CheckGroup checkGroup,
                                @PathVariable("checkItemIds")Integer[] checkItemIds){
//        System.out.println("========="+checkGroup);
        checkGroup.setStatus(1);
        cheackGroupService.addCheckGroup(checkGroup,checkItemIds);
        //表示需要返回一个Result对象，给前端做响应
        return  new Result(true, MessageConstant.ADD_CHECKGROUP_SUCCESS);
    }

//    添加 数据项ids by id
    @PostMapping("/addCheckGroupbyId/{checkItemIds}/{id}")
    public Result addCheckGroupbyId(@PathVariable("id")Integer id,
                                @PathVariable("checkItemIds")Integer[] checkItemIds){
        cheackGroupService.addCheckGroupbyId(id,checkItemIds);
        //表示需要返回一个Result对象，给前端做响应
        return  new Result(true, MessageConstant.ADD_CHECKGROUP_SUCCESS);
    }

    //    修改检查项数据
    @PostMapping("/updateCheckGroup")
    public Result updateCheckGroup(@RequestBody CheckGroup checkGroup){
//        System.out.println("========="+checkGroup);
        cheackGroupService.updateCheckGroup(checkGroup);
        //表示需要返回一个Result对象，给前端做响应
        return  new Result(true, MessageConstant.EDIT_CHECKGROUP_SUCCESS);
    }

    //    删除检查项数据
    @PostMapping("/deleteCheckGroup/{id}")
    public Result deleteCheckGroup(@PathVariable("id")Integer id){
        System.out.println("========="+id);
        cheackGroupService.deleteCheckGroup(id);
        //表示需要返回一个Result对象，给前端做响应
        return  new Result(true, MessageConstant.DELETE_CHECKGROUP_SUCCESS);
    }




    //   检查项ids 数据回显
    @GetMapping ("/findCheckItemIdsById/{id}")
    public Result findCheckItemIdsById(@PathVariable("id")Integer id){
        System.out.println("========="+id);
        Integer[] checkItemIds = cheackGroupService.findCheckItemIdsById(id);
        //表示需要返回一个Result对象，给前端做响应
        return  new Result(true, MessageConstant.QUERY_CHECKGROUP_SUCCESS,checkItemIds);
    }

    //    删除检查项ids by id
    @PostMapping("/deleteCheckItemIdsById/{id}")
    public Result deleteCheckItemIdsById(@PathVariable("id")Integer id){
        System.out.println("========="+id);
        cheackGroupService.deleteCheckItemIdsById(id);
        //表示需要返回一个Result对象，给前端做响应
        return  new Result(true, MessageConstant.DELETE_CHECKGROUP_SUCCESS);
    }
}
